package com.tang.sys.controller;

import com.tang.dto.TagListDto;
import com.tang.sys.ResponseResult;
import com.tang.sys.entity.Tag;
import com.tang.sys.service.ITagService;
import com.tang.sys.vo.PageVo;
import com.tang.sys.vo.TagVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 标签 前端控制器
 * </p>
 *
 * @author shankaka
 * @since 2023-04-16
 */
@RestController
@RequestMapping("/content/tag")
public class TagController {

    @Autowired
    private ITagService iTagService;

    @GetMapping("/list")
    public ResponseResult<PageVo> list(Integer pageNum, Integer pageSize, TagListDto tagListDto){

        return iTagService.pageTagList(pageNum,pageSize,tagListDto);
    }

    @PostMapping
    public ResponseResult<TagVo> addTag(@RequestBody TagVo tagVo){

        return iTagService.addTag(tagVo);
    }

    //删除标签
    @DeleteMapping("{id}")
    public ResponseResult<Tag> deleteTag(@PathVariable("id") Long id){

        return iTagService.deleteTag(id);
    }

    @GetMapping("{id}")
    public ResponseResult<TagVo> getTagInfo(@PathVariable("id") String id){
        Tag byId = iTagService.getById(id);

        return ResponseResult.okResult(byId);

    }


    //修改标签
    @PutMapping
    public ResponseResult<TagVo> updateTag(@RequestBody TagVo tagVo){
        iTagService.updateTag(tagVo);
        return ResponseResult.okResult();
    }

    //查询所有的标签
    @GetMapping("/listAllTag")
    public ResponseResult listAllTag(){
        List<TagVo> list = iTagService.listAllTag();
        return ResponseResult.okResult(list);
    }
}
